package tec;

public interface CaracterePassager {

    public abstract void choixChangerPlace(Bus b, int arret, Passager p);

    static CaracterePassager CALME = new CaracterePassager() {
	    public void choixChangerPlace(Bus b, int arret, Passager p){
		
	    }
	};

    static CaracterePassager PRUDENT = new CaracterePassager() {
	    public void choixChangerPlace(Bus b, int arret, Passager pa){
		PassagerAbstrait p = (PassagerAbstrait)pa;
		if(!p.estAssis()){
		    if(arret < p.destination() - 5)
			b.demanderPlaceAssise(p);
		}
		if(!p.estDebout()){
		    if(arret >= p.destination() - 3)
			b.demanderPlaceDebout(p);
		}
	    }
	};

    static CaracterePassager NERVEUX = new CaracterePassager() {
	    public void choixChangerPlace(Bus b, int arret, Passager p){
		if(p.estDebout())
		    b.demanderPlaceAssise(p);
		else
		    b.demanderPlaceDebout(p);
	    }
	};

    static CaracterePassager AGORAPHOBE = new CaracterePassager() {
	    public void choixChangerPlace(Bus b, int arret, Passager p){
		if(!b.aPlaceAssise())
		    b.demanderSortie(p);
		else{
		    if(!b.aPlaceDebout())
			b.demanderSortie(p);
		}
	    }
	};

    static CaracterePassager POLI = new CaracterePassager() {
	    public void choixChangerPlace(Bus b, int arret, Passager p){
		if(p.estAssis()){
		    if(!b.aPlaceAssise())
			b.demanderPlaceDebout(p);
		}
	    }
	};

}
